package com.chenbei.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.chenbei.system.domain.SysRole;
import com.chenbei.system.vo.req.SysRoleBindPermissionReq;
import com.chenbei.system.vo.req.SysRoleReq;

import java.util.List;

public interface ISysRoleService extends IService<SysRole> {

    /**
     * 添加角色
     * @param sysRole 实例
     * @return SysRole
     */
    SysRole add(SysRole sysRole);

    /**
     * 角色分页列表
     * @param sysRoleReq 请求实例
     * @return Page
     */
    IPage<SysRole> page(SysRoleReq sysRoleReq);

    /**
     * 角色列表
     * @param roleReq 请求实例
     * @return List
     */
    List<SysRole> list(SysRoleReq roleReq);

    /**
     * 更新角色
     * @param sysRole 实例
     */
    void update(SysRole sysRole);

    /**
     * 删除角色
     * @param id 角色ID
     */
    void delete(long id);

    /**
     * 绑定权限
     * @param roleBindPermissionReq 请求实例
     */
    void bindPermissions(SysRoleBindPermissionReq roleBindPermissionReq);
}
